package entities;

import entities.Lugar;
import java.io.Serializable;
import java.util.ArrayList;

/**
 * @author Leonardo Lino Nº45340
 * @author Diogo Pires Nº40351
 */
public class Teatro implements Serializable {

    public int id;
    public int lugaresTotal;
    public int lugaresOcupados;
    public int lugaresReservados;
    public String nome;
    public ArrayList<Lugar> lugares;

    public Teatro(int id, int lugaresTotal, int lugaresOcupados, int lugaresReservados, String nome, ArrayList<Lugar> lugares) {
        this.id = id;
        this.nome = nome;
        this.lugares = lugares;
        this.lugaresTotal = lugaresTotal;
        this.lugaresOcupados = lugaresOcupados;
        this.lugaresReservados = lugaresReservados;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getLugaresTotal() {
        return lugaresTotal;
    }

    public void setLugaresTotal(int lugaresTotal) {
        this.lugaresTotal = lugaresTotal;
    }

    public int getLugaresOcupados() {
        return lugaresOcupados;
    }

    public void setLugaresOcupados(int lugaresOcupados) {
        this.lugaresOcupados = lugaresOcupados;
    }

    public int getLugaresReservados() {
        return lugaresReservados;
    }

    public void setLugaresReservados(int lugaresReservados) {
        this.lugaresReservados = lugaresReservados;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public ArrayList<Lugar> getLugares() {
        return lugares;
    }

    public void setLugares(ArrayList<Lugar> lugares) {
        this.lugares = lugares;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();

        sb.append(id);
        sb.append(':');
        sb.append(nome);
        sb.append(':');
        sb.append(lugaresTotal);
        sb.append(':');
        sb.append(lugaresOcupados);
        sb.append(':');
        sb.append(lugaresReservados);
        sb.append(':');

        for (Lugar lugar : lugares) {
            sb.append(lugar.id);
            sb.append(':');
            sb.append(lugar.row);
            sb.append(':');
            sb.append(lugar.column);
            sb.append(':');
            sb.append(lugar.state);
            sb.append(':');
            sb.append(lugar.userID);
            sb.append(':');
            if (lugar.timestamp == null) {
                sb.append("null");
            } else {
                sb.append(lugar.timestamp);
            }
        }

        return sb.toString();
    }

}
